home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / plaf / basic / BasicMenuUI.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  4.7 KB  |  115 lines

  1. package javax.swing.plaf.basic;
  2.  
  3. import java.awt.Dimension;
  4. import java.beans.PropertyChangeListener;
  5. import javax.swing.JComponent;
  6. import javax.swing.JMenu;
  7. import javax.swing.KeyStroke;
  8. import javax.swing.Timer;
  9. import javax.swing.event.ChangeListener;
  10. import javax.swing.event.MenuDragMouseListener;
  11. import javax.swing.event.MenuKeyListener;
  12. import javax.swing.event.MenuListener;
  13. import javax.swing.event.MouseInputListener;
  14. import javax.swing.plaf.ComponentUI;
  15.  
  16. public class BasicMenuUI extends BasicMenuItemUI {
  17.    protected ChangeListener changeListener;
  18.    protected PropertyChangeListener propertyChangeListener;
  19.    protected MenuListener menuListener;
  20.    private int lastMnemonic = 0;
  21.  
  22.    protected ChangeListener createChangeListener(JComponent var1) {
  23.       return new ChangeHandler(this, (JMenu)var1, this);
  24.    }
  25.  
  26.    protected MenuDragMouseListener createMenuDragMouseListener(JComponent var1) {
  27.       return new MenuDragMouseHandler(this);
  28.    }
  29.  
  30.    protected MenuKeyListener createMenuKeyListener(JComponent var1) {
  31.       return new MenuKeyHandler(this);
  32.    }
  33.  
  34.    protected MenuListener createMenuListener(JComponent var1) {
  35.       return new MenuHandler();
  36.    }
  37.  
  38.    protected MouseInputListener createMouseInputListener(JComponent var1) {
  39.       return new MouseInputHandler(this);
  40.    }
  41.  
  42.    protected PropertyChangeListener createPropertyChangeListener(JComponent var1) {
  43.       return new PropertyChangeHandler(this);
  44.    }
  45.  
  46.    public static ComponentUI createUI(JComponent var0) {
  47.       return new BasicMenuUI();
  48.    }
  49.  
  50.    public Dimension getMaximumSize(JComponent var1) {
  51.       if (((JMenu)super.menuItem).isTopLevelMenu()) {
  52.          Dimension var2 = var1.getPreferredSize();
  53.          return new Dimension(var2.width, 32767);
  54.       } else {
  55.          return null;
  56.       }
  57.    }
  58.  
  59.    protected String getPropertyPrefix() {
  60.       return "Menu";
  61.    }
  62.  
  63.    protected void installDefaults() {
  64.       super.installDefaults();
  65.       ((JMenu)super.menuItem).setDelay(200);
  66.    }
  67.  
  68.    protected void installKeyboardActions() {
  69.       if (super.menuItem.getModel().getMnemonic() != this.lastMnemonic) {
  70.          super.menuItem.unregisterKeyboardAction(KeyStroke.getKeyStroke(this.lastMnemonic, 8, false));
  71.          this.lastMnemonic = super.menuItem.getModel().getMnemonic();
  72.          super.menuItem.registerKeyboardAction(new PostAction((JMenu)super.menuItem, true), KeyStroke.getKeyStroke(this.lastMnemonic, 8, false), 2);
  73.       }
  74.  
  75.    }
  76.  
  77.    protected void installListeners() {
  78.       super.installListeners();
  79.       this.changeListener = this.createChangeListener(super.menuItem);
  80.       this.propertyChangeListener = this.createPropertyChangeListener(super.menuItem);
  81.       this.menuListener = this.createMenuListener(super.menuItem);
  82.       super.menuItem.addChangeListener(this.changeListener);
  83.       super.menuItem.addPropertyChangeListener(this.propertyChangeListener);
  84.       ((JMenu)super.menuItem).addMenuListener(this.menuListener);
  85.    }
  86.  
  87.    protected void setupPostTimer(JMenu var1) {
  88.       Timer var2 = new Timer(var1.getDelay(), new PostAction(var1, false));
  89.       var2.setRepeats(false);
  90.       var2.start();
  91.    }
  92.  
  93.    protected void uninstallDefaults() {
  94.       super.menuItem.setArmed(false);
  95.       super.menuItem.setSelected(false);
  96.       super.menuItem.resetKeyboardActions();
  97.       super.uninstallDefaults();
  98.    }
  99.  
  100.    protected void uninstallKeyboardActions() {
  101.       super.menuItem.unregisterKeyboardAction(KeyStroke.getKeyStroke(this.lastMnemonic, 8, false));
  102.       this.lastMnemonic = 0;
  103.    }
  104.  
  105.    protected void uninstallListeners() {
  106.       super.uninstallListeners();
  107.       super.menuItem.removeChangeListener(this.changeListener);
  108.       super.menuItem.removePropertyChangeListener(this.propertyChangeListener);
  109.       ((JMenu)super.menuItem).removeMenuListener(this.menuListener);
  110.       this.changeListener = null;
  111.       this.propertyChangeListener = null;
  112.       this.menuListener = null;
  113.    }
  114. }
  115.